﻿#ifndef __PATH9IMAGE_H__
#define __PATH9IMAGE_H__

#include <irrlicht.h>
#include "IElementImage.h"

namespace irr{
namespace gui{

/*
* @class Path9Image
* Класс реализующий загрузку и отрисовку рисунков Path-9
*/
class Path9Image:public irr::gui::IElementImage{
	private:
		irr::video::ITexture*texture;
		irr::core::dimension2d<irr::u32> size;
		
		irr::core::recti TopLeft;//верхний левый
		irr::core::recti BottomLeft;//нижний левый
		
		irr::core::recti TopRight;//верхний правый
		irr::core::recti BottomRight;//нижний правый
		
		irr::core::recti CenterLeft;//центральный левый
		irr::core::recti CenterRight;//центральный правый
		
		irr::core::recti CenterTop;//центральный сверху
		irr::core::recti CenterBottom;//центральный сниху
		irr::core::recti Center;//центральный
		
		void findBlackX(irr::video::IImage*img,irr::s32*start,irr::s32*end,irr::s32 d);
		void findBlackY(irr::video::IImage*img,irr::s32*start,irr::s32*end,irr::s32 d);
	public:
		/*
		* Конструктор, создаёт 9-path рисунок
		*
		* @param driver используемый видео-драйвер
		* @param fileName путь к файлу картинки
		*/
		Path9Image(irr::video::IVideoDriver*driver,irr::io::path fileName);
		~Path9Image();
		virtual void render(irr::video::IVideoDriver*driver,irr::core::recti rect);
		virtual irr::u32 getMargin(MarginSide type);
		static Path9Image*createPath9Image(irr::video::IVideoDriver*driver,irr::io::path fileName);
};

}//namespace gui
}//namespace irr
#endif
